package com.houweishi.module.clockingcount.service;

import java.util.List;
import java.util.Map;

import com.houweishi.module.clocking.domain.BizClocking;
import com.houweishi.module.clockingcount.domain.BizClockingCount;

/**
 * 员工打卡统计Service接口
 *
 * @author houweishi
 * @date 2023-03-04
 */
public interface IBizClockingCountService {
    /**
     * 查询员工打卡统计
     *
     * @param id 员工打卡统计主键
     * @return 员工打卡统计
     */
    public BizClockingCount selectBizClockingCountById(Long id);

    /**
     * 查询员工打卡统计列表
     *
     * @param bizClockingCount 员工打卡统计
     * @return 员工打卡统计集合
     */
    public List<BizClockingCount> selectBizClockingCountList(BizClockingCount bizClockingCount);

    /**
     * 新增员工打卡统计
     *
     * @param bizClockingCount 员工打卡统计
     * @return 结果
     */
    public int insertBizClockingCount(BizClockingCount bizClockingCount);

    /**
     * 修改员工打卡统计
     *
     * @param bizClockingCount 员工打卡统计
     * @return 结果
     */
    public int updateBizClockingCount(BizClockingCount bizClockingCount);

    /**
     * 批量删除员工打卡统计
     *
     * @param ids 需要删除的员工打卡统计主键集合
     * @return 结果
     */
    public int deleteBizClockingCountByIds(Long[] ids);

    /**
     * 删除员工打卡统计信息
     *
     * @param id 员工打卡统计主键
     * @return 结果
     */
    public int deleteBizClockingCountById(Long id);


    /**
     * 查询员工当月打卡统计列表
     *
     * @param bizClockingCount 员工打卡统计列表
     * @return 员工打卡统计
     */
    public List<BizClockingCount> selectBizClockingCountListByMonth(BizClockingCount bizClockingCount);

    //    /**
    //     * 查询员工姓名，id
    //     *
    //     * @param bizClockingCount 员工打卡统计
    //     * @return 员工打卡统计集合
    //     */
    //    public List<BizClockingCount> selectStaffNameList(BizClockingCount bizClockingCount);


    //    /**
    //     * 查询员工当月打卡统计列表2
    //     *
    //     * @param bizClockingCount 员工打卡统计列表
    //     * @return 员工打卡统计
    //     */
    //    public List<BizClockingCount> selectBizClockingCountListByMonth2(BizClockingCount bizClockingCount);

    /**
     * 查询每个员工本月打卡记录
     *
     * @return 打卡集合
     */
    public List<Map<String, Object>> selectTreeList(BizClockingCount bizClockingCount);

    /**
     * 查询每个员工本月打卡记录（本部门级下属部门员工信息）
     *
     * @return 打卡集合
     */
    public List<Map<String, Object>> selectTreeList2(BizClockingCount bizClockingCount);


}
